package com.example.demo.listener;

import com.example.demo.entity.UserInfo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;

/**
 * 自定义监听器，监听 MyEvent 事件
 *
 * @author LF
 * @date 2021/4/19 - 10:26
 */
/*@Component
@Slf4j
public class MyEventListener implements ApplicationListener<MyEvent> {//第一种方式
    *//**
     * 重写onApplicationEvent方法,将自定义的 MyEvent事件传进来，因为该事件中,我们定义了 UserInfo对象（该对象在实际中就是需要处理的数据，
     * 在下文来模拟），然后就可以使用该对象的信息了
     * @param
     *//*
    @Override
    public void onApplicationEvent(MyEvent myEvent) {
        // 把事件中的信息获取到
        UserInfo user = myEvent.getUser();
        // 处理事件，实际项目中可以通知别的微服务或者处理其他逻辑等
        log.info("自定义监听器,UserInfo对象----->>>" + user.toString());
    }
}*/

@Component
@Slf4j
public class MyEventListener {//第二种方式
    @EventListener
    public void onApplicationEvent(MyEvent event) {
        // 把事件中的信息获取到
        UserInfo user = event.getUser();
        // 处理事件，实际项目中可以通知别的微服务或者处理其他逻辑等
        log.info("自定义监听器,UserInfo对象---+++--->>>" + user.toString());
    }
}